<h1>OSDEP API</h1>
<a name="Extensions"></a><h2>Extensions</h2>
  <table class="apiIndex" title="Extensions">
<tr class="apiDef">
<td class="apiName"><a href="#group___osdep" class="nameRef">Osdep</a></td>
<td class="apiBrief">Operating system dependent layer that provides a portable cross-platform abstraction layer.</td></tr>
</table>
<a name="Functions"></a><h2>Functions</h2>
  <table class="apiIndex" title="Functions">
</table>
<a name="Typedefs"></a><h2>Typedefs</h2>
<table class="apiIndex" title="typedefs">
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga7bac74916a564105339bcd5a9323c366" class="nameRef">Offset</a></td><td class="apiBrief">Signed file offset data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gaf9381320a2640ea84038579d8f143c01" class="nameRef">Socket</a></td><td class="apiBrief">Argument for sockets.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga7e81f05ea37d05efc10e7c45c1111d0d" class="nameRef">Socklen</a></td><td class="apiBrief">Size to hold the length of a socket address.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga06650984137cfde185bac06dd2a4f355" class="nameRef">Ticks</a></td><td class="apiBrief">Elapsed time data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gade1c8a9958f9e5394c2e78269e654872" class="nameRef">Time</a></td><td class="apiBrief">Time in milliseconds since Jan 1, 1970.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gad5c9d4ba3dc37783a528b0925dc981a0" class="nameRef">bool</a></td><td class="apiBrief">Boolean data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga0f128c3e0c83721af0220c00554e9c4e" class="nameRef">cchar</a></td><td class="apiBrief">Constant char data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga1f6289ab1328cf3c7852d75c397838a2" class="nameRef">cint</a></td><td class="apiBrief">Constant int data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gad5d9ae5e2ea7e75aa605e36485987fc2" class="nameRef">cuchar</a></td><td class="apiBrief">Unsigned char data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga585ef5c0f4567945e1f3e7f32670accb" class="nameRef">cushort</a></td><td class="apiBrief">Constant unsigned short data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga5272042f7e0f5c53e2fd4b49ff47d92d" class="nameRef">cvoid</a></td><td class="apiBrief">Constant void data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga4355d16fcf9f644c9ac84293f0b1801f" class="nameRef">int16</a></td><td class="apiBrief">Integer 16 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga56f1a81c92849566ae864511088eb7e8" class="nameRef">int32</a></td><td class="apiBrief">Integer 32 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gae47c588f3ab8c61121c1c7ab7edc47cd" class="nameRef">int8</a></td><td class="apiBrief">Integer 8 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga0fd9ce9d735064461bebfe6037026093" class="nameRef">schar</a></td><td class="apiBrief">Signed char data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a1600235df88b3821764244933b5024f5" class="nameRef">size_t</a></td><td class="apiBrief">Unsigned integral type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga7d08ccc1e981eb4d5a238641ac4ccfc1" class="nameRef">ssize</a></td><td class="apiBrief">Signed integer size field large enough to hold a pointer offset.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a824afaa48b313f905546cf45822800fc" class="nameRef">time_t</a></td><td class="apiBrief">Unsigned time type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga65f85814a8290f9797005d3b28e7e5fc" class="nameRef">uchar</a></td><td class="apiBrief">Unsigned char data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga91ad9478d81a7aaf2593e8d9c3d06a14" class="nameRef">uint</a></td><td class="apiBrief">Unsigned integer (machine dependent bit size) data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga05f6b0ae8f6a6e135b0e290c25fe0e4e" class="nameRef">uint16</a></td><td class="apiBrief">Unsigned integer 16 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga1134b580f8da4de94ca6b1de4d37975e" class="nameRef">uint32</a></td><td class="apiBrief">Unsigned integer 32 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gadde6aaee8457bee49c2a92621fe22b79" class="nameRef">uint8</a></td><td class="apiBrief">Unsigned integer 8 bits data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga718b4eb2652c286f4d42dc18a8e71a1a" class="nameRef">ulong</a></td><td class="apiBrief">Unsigned long (machine dependent bit size) data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1gab95f123a6c9bcfee6a343170ef8c5f69" class="nameRef">ushort</a></td><td class="apiBrief">Unsigned short data type.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___osdep_1ga05fe06d2dbadc7a0d43b9f0979417b67" class="nameRef">wsize</a></td><td class="apiBrief">Windows uses uint for write/read counts (Ugh!).</td></tr>
</table>
<a name="Defines"></a><h2>Defines</h2>
<table class="apiIndex" title="Defines">
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a736241a28d828a05b8d709862bf7990f" class="nameRef">ME_BIG_ENDIAN</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Big endian byte ordering.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a2f0a736986e64f8420db89ca8e4b70cd" class="nameRef">ME_BUFSIZE</a>&nbsp;&nbsp;&nbsp;8192</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reasonable size for buffers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a443dca52b386807bfe6c7162d4b2a023" class="nameRef">ME_CPU_ARM</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Arm.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1acf5875009a8e123925d730e17911fa85" class="nameRef">ME_CPU_ARM64</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Arm64.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1ac339037b29b2fd949d7e62419793d12b" class="nameRef">ME_CPU_ITANIUM</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Intel Itanium.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a1a583c909fba02ea516592a81773effd" class="nameRef">ME_CPU_MIPS</a>&nbsp;&nbsp;&nbsp;6</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Mips.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a0d138a774a2c7d7a518f103589872ba7" class="nameRef">ME_CPU_PPC</a>&nbsp;&nbsp;&nbsp;7</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Power PC.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a780b745dcf74dba38cf3d2dcbb3dcb61" class="nameRef">ME_CPU_PPC64</a>&nbsp;&nbsp;&nbsp;8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Power PC 64.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1ad975d8ac18329c4bf1d639dbd8b61245" class="nameRef">ME_CPU_RISCV</a>&nbsp;&nbsp;&nbsp;12</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>RiscV.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a895414554d7e81ffb874272c095dc0b4" class="nameRef">ME_CPU_RISCV64</a>&nbsp;&nbsp;&nbsp;13</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>RiscV64.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a37fea4c5334adbdcc9756911d5dc3c69" class="nameRef">ME_CPU_SH</a>&nbsp;&nbsp;&nbsp;11</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>SuperH.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a0d7a6b6d52476cde608ffd4095e65d85" class="nameRef">ME_CPU_SPARC</a>&nbsp;&nbsp;&nbsp;9</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Sparc.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a48107de6359e4eb347016f48bb4a3c3b" class="nameRef">ME_CPU_TIDSP</a>&nbsp;&nbsp;&nbsp;10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>TI DSP.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a5674b5b2a7b04cee2b46f74920d52d8f" class="nameRef">ME_CPU_X64</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>AMD64 or EMT64.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1aaacaa5832d9cfa8111ca25864d0c12ee" class="nameRef">ME_CPU_X86</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>X86.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a7f3e8d87a594a800e4ad8a6e6c131985" class="nameRef">ME_DEBUG</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default to a debug build.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1aa748d8e11fc5b0402c59831885b65ad0" class="nameRef">ME_LITTLE_ENDIAN</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Little endian byte ordering.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a1acfc74ba25c25a18f5e3ec6d65975fd" class="nameRef">ME_MAX_ARGC</a>&nbsp;&nbsp;&nbsp;32</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum number of command line args if using MAIN().</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a9d78235891c980fb95e8bdd6bbaae123" class="nameRef">ME_MAX_FNAME</a>&nbsp;&nbsp;&nbsp;256</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reasonable filename size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1ac26162cd12a36bec6a00e9c6942d3c57" class="nameRef">ME_MAX_PATH</a>&nbsp;&nbsp;&nbsp;1024</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reasonable filename size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#osdep_8h_1a90bb49312ca043c1eaf731d4aca5cdaa" class="nameRef">ME_STACK_SIZE</a>&nbsp;&nbsp;&nbsp;(128 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default thread stack size (0 means use system default).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#group___osdep_1ga5a4b32e0a7ed302b1959f2d663eb9207" class="nameRef">TPS</a>&nbsp;&nbsp;&nbsp;1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Time/Ticks units per second (milliseconds).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#group___osdep_1ga5a4b32e0a7ed302b1959f2d663eb9207" class="nameRef">TPS</a>&nbsp;&nbsp;&nbsp;1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Time/Ticks units per second (milliseconds).</td></tr>
  </table>
<h2>Osdep</h2>
<a name="group___osdep"></a>
<div class="api">
  <div class="prototype">Osdep</div>
  <div class="apiDetail">
<p>Operating system dependent layer that provides a portable cross-platform abstraction layer.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<h2>Functions</h2>
<h2>Typedefs</h2>
<a name="osdep_8h_1a1600235df88b3821764244933b5024f5"></a>
<div class="api">
  <div class="prototype">
    typedef long size_t.
  </div>
  <div class="apiDetail">
<p>Unsigned integral type.</p>
Equivalent in size to void*
  </div>
</div>
<a name="osdep_8h_1a824afaa48b313f905546cf45822800fc"></a>
<div class="api">
  <div class="prototype">
    typedef long time_t.
  </div>
  <div class="apiDetail">
<p>Unsigned time type.</p>
Time in seconds since Jan 1, 1970
  </div>
</div>
<a name="group___osdep_1gad5c9d4ba3dc37783a528b0925dc981a0"></a>
<div class="api">
  <div class="prototype">
    typedef char bool.
  </div>
  <div class="apiDetail">
<p>Boolean data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga0f128c3e0c83721af0220c00554e9c4e"></a>
<div class="api">
  <div class="prototype">
    typedef const char cchar.
  </div>
  <div class="apiDetail">
<p>Constant char data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga1f6289ab1328cf3c7852d75c397838a2"></a>
<div class="api">
  <div class="prototype">
    typedef const int cint.
  </div>
  <div class="apiDetail">
<p>Constant int data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gad5d9ae5e2ea7e75aa605e36485987fc2"></a>
<div class="api">
  <div class="prototype">
    typedef const unsigned char cuchar.
  </div>
  <div class="apiDetail">
<p>Unsigned char data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga585ef5c0f4567945e1f3e7f32670accb"></a>
<div class="api">
  <div class="prototype">
    typedef const unsigned short cushort.
  </div>
  <div class="apiDetail">
<p>Constant unsigned short data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga5272042f7e0f5c53e2fd4b49ff47d92d"></a>
<div class="api">
  <div class="prototype">
    typedef const void cvoid.
  </div>
  <div class="apiDetail">
<p>Constant void data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga4355d16fcf9f644c9ac84293f0b1801f"></a>
<div class="api">
  <div class="prototype">
    typedef short int16.
  </div>
  <div class="apiDetail">
<p>Integer 16 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga56f1a81c92849566ae864511088eb7e8"></a>
<div class="api">
  <div class="prototype">
    typedef int int32.
  </div>
  <div class="apiDetail">
<p>Integer 32 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gae47c588f3ab8c61121c1c7ab7edc47cd"></a>
<div class="api">
  <div class="prototype">
    typedef char int8.
  </div>
  <div class="apiDetail">
<p>Integer 8 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga7bac74916a564105339bcd5a9323c366"></a>
<div class="api">
  <div class="prototype">
    typedef int64 Offset.
  </div>
  <div class="apiDetail">
<p>Signed file offset data type.</p>
Supports large files greater than 4GB in size on all systems
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga0fd9ce9d735064461bebfe6037026093"></a>
<div class="api">
  <div class="prototype">
    typedef signed char schar.
  </div>
  <div class="apiDetail">
<p>Signed char data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gaf9381320a2640ea84038579d8f143c01"></a>
<div class="api">
  <div class="prototype">
    typedef int Socket.
  </div>
  <div class="apiDetail">
<p>Argument for sockets.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga7e81f05ea37d05efc10e7c45c1111d0d"></a>
<div class="api">
  <div class="prototype">
    typedef int Socklen.
  </div>
  <div class="apiDetail">
<p>Size to hold the length of a socket address.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga7d08ccc1e981eb4d5a238641ac4ccfc1"></a>
<div class="api">
  <div class="prototype">
    typedef ssize_t ssize.
  </div>
  <div class="apiDetail">
<p>Signed integer size field large enough to hold a pointer offset.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga06650984137cfde185bac06dd2a4f355"></a>
<div class="api">
  <div class="prototype">
    typedef int64 Ticks.
  </div>
  <div class="apiDetail">
<p>Elapsed time data type.</p>
Stores time in milliseconds from some arbitrary start epoch
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gade1c8a9958f9e5394c2e78269e654872"></a>
<div class="api">
  <div class="prototype">
    typedef int64 Time.
  </div>
  <div class="apiDetail">
<p>Time in milliseconds since Jan 1, 1970.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga65f85814a8290f9797005d3b28e7e5fc"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned char uchar.
  </div>
  <div class="apiDetail">
<p>Unsigned char data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga91ad9478d81a7aaf2593e8d9c3d06a14"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned int uint.
  </div>
  <div class="apiDetail">
<p>Unsigned integer (machine dependent bit size) data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga05f6b0ae8f6a6e135b0e290c25fe0e4e"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned short uint16.
  </div>
  <div class="apiDetail">
<p>Unsigned integer 16 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga1134b580f8da4de94ca6b1de4d37975e"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned int uint32.
  </div>
  <div class="apiDetail">
<p>Unsigned integer 32 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gadde6aaee8457bee49c2a92621fe22b79"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned char uint8.
  </div>
  <div class="apiDetail">
<p>Unsigned integer 8 bits data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga718b4eb2652c286f4d42dc18a8e71a1a"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned long ulong.
  </div>
  <div class="apiDetail">
<p>Unsigned long (machine dependent bit size) data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1gab95f123a6c9bcfee6a343170ef8c5f69"></a>
<div class="api">
  <div class="prototype">
    typedef unsigned short ushort.
  </div>
  <div class="apiDetail">
<p>Unsigned short data type.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___osdep_1ga05fe06d2dbadc7a0d43b9f0979417b67"></a>
<div class="api">
  <div class="prototype">
    typedef ssize wsize.
  </div>
  <div class="apiDetail">
<p>Windows uses uint for write/read counts (Ugh!).</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
